]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
status/network: Make connectivity queue a Set
authorFlorian Müllner <fmuellner@gnome.org>
Sun, 31 Jul 2022 23:17:53 +0000 (01:17 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Sun, 7 Aug 2022 20:41:09 +0000 (22:41 +0200)
It's better suited than an array.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2406>

js/ui/status/network.js

index 0ae423b68204357c261d67d77afb9e6674bc506e..d2802f328e905c908305e97a0e550f640b88a548 100644 (file)
@@ -1759,7 +1759,7 @@ class Indicator extends PanelMenu.SystemIndicator {
 
         this._activeConnections = [];
         this._connections = [];
-        this._connectivityQueue = [];
+        this._connectivityQueue = new Set();
 
         this._mainConnection = null;
 
@@ -2090,23 +2090,14 @@ class Indicator extends PanelMenu.SystemIndicator {
     }
 
     _flushConnectivityQueue() {
-        if (this._portalHelperProxy) {
-            for (let item of this._connectivityQueue)
-                this._portalHelperProxy.CloseAsync(item).catch(logError);
-        }
-
-        this._connectivityQueue = [];
+        for (let item of this._connectivityQueue)
+            this._portalHelperProxy?.CloseAsync(item);
+        this._connectivityQueue.clear();
     }
 
     _closeConnectivityCheck(path) {
-        let index = this._connectivityQueue.indexOf(path);
-
-        if (index >= 0) {
-            if (this._portalHelperProxy)
-                this._portalHelperProxy.CloseAsync(path).catch(logError);
-
-            this._connectivityQueue.splice(index, 1);
-        }
+        if (this._connectivityQueue.delete(path))
+            this._portalHelperProxy?.CloseAsync(path);
     }
 
     async _portalHelperDone(proxy, emitter, parameters) {
@@ -2149,10 +2140,8 @@ class Indicator extends PanelMenu.SystemIndicator {
             return;
 
         let path = this._mainConnection.get_path();
-        for (let item of this._connectivityQueue) {
-            if (item == path)
-                return;
-        }
+        if (this._connectivityQueue.has(path))
+            return;
 
         let timestamp = global.get_current_time();
         if (!this._portalHelperProxy) {
@@ -2176,7 +2165,7 @@ class Indicator extends PanelMenu.SystemIndicator {
 
         this._portalHelperProxy?.AuthenticateAsync(path, '', timestamp).catch(logError);
 
-        this._connectivityQueue.push(path);
+        this._connectivityQueue.add(path);
     }
 
     _updateIcon() {